import { IPSDEWizardForm } from './ipsdewizard-form';
import { IPSDEWizardStep } from './ipsdewizard-step';
import { IPSLanguageRes } from '../../res/ipslanguage-res';
import { IPSModelObject } from '../../ipsmodel-object';

/**
 *
 * @export
 * @interface IPSDEWizard
 */
export interface IPSDEWizard extends IPSModelObject {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 完成标题语言资源标识
   * @type {string}
   */
  finishCapLanResTag: string;

  /**
   * 完成标题语言资源
   *
   * @type {IPSLanguageRes}
   */
  getFinishCapPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 完成标题
   * @type {string}
   */
  finishCaption: string;

  /**
   * 首向导表单
   *
   * @type {IPSDEWizardForm}
   */
  getFirstPSDEWizardForm(): IPSDEWizardForm | null;

  /**
   * 下一步标题语言资源标识
   * @type {string}
   */
  nextCapLanResTag: string;

  /**
   * 下一步标题语言资源
   *
   * @type {IPSLanguageRes}
   */
  getNextCapPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 下一步标题
   * @type {string}
   */
  nextCaption: string;

  /**
   * 实体向导表单集合
   *
   * @type {IPSDEWizardForm[]}
   */
  getPSDEWizardForms(): IPSDEWizardForm[] | null;

  findPSDEWizardForm(objKey: any): IPSDEWizardForm | null;

  /**
   * 实体向导步骤集合
   *
   * @type {IPSDEWizardStep[]}
   */
  getPSDEWizardSteps(): IPSDEWizardStep[] | null;

  findPSDEWizardStep(objKey: any): IPSDEWizardStep | null;

  /**
   * 上一步标题语言资源标识
   * @type {string}
   */
  prevCapLanResTag: string;

  /**
   * 上一步标题语言资源
   *
   * @type {IPSLanguageRes}
   */
  getPrevCapPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 上一步标题
   * @type {string}
   */
  prevCaption: string;

  /**
   * 向导样式
   * @description 值模式 [向导样式] {DEFAULT：默认样式、 STYLE2：样式2、 STYLE3：样式3、 STYLE4：样式4 }
   * @type {( string | 'DEFAULT' | 'STYLE2' | 'STYLE3' | 'STYLE4')}
   */
  wizardStyle: string | 'DEFAULT' | 'STYLE2' | 'STYLE3' | 'STYLE4';

  /**
   * 启用主状态迁移逻辑
   * @type {boolean}
   * @default false
   */
  enableMainStateLogic: boolean;

  /**
   * 状态向导
   * @type {boolean}
   */
  stateWizard: boolean;
}
